/**
 * 图标
 * */
// 发起节点默认config
export const initiatingNodeConfig = {
  form: {
    formId: null, //表单ID
    formName: null, //表单名称
    //字段权限
    column: []
  },
  button: [
    {
      buttonId: "commitSource", //提交领料
      buttonName: "提交领料", //提交领料
      buttonType: "commitSource", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "commitSource"
      }
    },
    {
      buttonId: "commitTable", //提交领表
      buttonName: "提交领表", //提交领表
      buttonType: "commitTable", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "commitTable"
      }
    }
  ],
  //操作按钮
  operationButton: [
    {
      buttonId: "start", //提交领表
      buttonName: "提交领表", //提交领表
      buttonType: "start", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "start"
      }
    },

    {
      buttonId: "save", //提交领表
      buttonName: "暂存", //暂存
      buttonType: "save", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "save"
      }
    }
  ],
  //打印按钮
  printButton: [
    {
      buttonId: "printNotiForm", //按钮ID
      buttonName: "打印通知单", //按钮名称
      buttonType: "printNotiForm", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "printNotiForm",
        value: null //打印参数
      }
    }
  ],
  copySend: {
    enabled: true, //是否启用"
    copySendType: 0, //抄送人类型
    copySendId: 1 //抄送人ID
  },
  // 对外设置
  label: {
    enabled: true, //是否启用"
    type: "0", //类型0默认,1自定义
    value: null //对外名称
  }
};
// 派工节点默认config
export const dispatchNodeConfig = {
  form: {
    formId: null, //表单ID
    formName: null, //表单名称
    //表单字段权限
    column: []
  },

  //操作按钮
  operationButton: [
    {
      buttonId: "dispatchCommit", //派工按钮
      buttonName: "提交", //按钮名称
      buttonType: "dispatchCommit", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "dispatchCommit"
      }
    },

    //退回
    {
      buttonId: "dispatchBack", //派工按钮
      buttonName: "退回", //按钮名称
      buttonType: "dispatchBack", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "dispatchBack",
        reject: {
          //退回操作
          action: "0", //驳回类型0、退回上一节点1、退回指定节点2
          value: null //退回节点ID
        }
      }
    },

    {
      buttonId: "transfer", //按钮ID,转交
      buttonName: "转交", //按钮名称
      buttonType: "transfer", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        typ: "transfer",
        actio: null, //退回上一节点0，退回指定节点1
        valu: {
          //人员配置
          rangeTyp: 111, //公司，部门，角色，分组，用户
          rangeValu: null
        }
      }
    }
  ],
  //打印按钮
  printButton: [
    {
      buttonId: "printNotiForm", //按钮ID
      buttonName: "打印通知单", //按钮名称
      buttonType: "printNotiForm", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "printNotiForm",
        value: null //打印参数
      }
    },
    //暂存
    {
      buttonId: "save", //提交领表
      buttonName: "暂存", //暂存
      buttonType: "save", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "save"
      }
    }
  ],
  copySend: {
    before: {
      enabled: true, //是否启用"
      copySendType: 0, //抄送人类型
      copySendId: 1 //抄送人ID
    },
    after: {
      enabled: true, //是否启用"
      copySendType: 0, //抄送人类型
      copySendId: 1 //抄送人ID
    }
  },
  label: {
    type: null, //类型0默认,1自定义
    value: null
  },
  // dispatch: {
  //   //派工配置
  //   rangeType: 111, //公司，部门，角色，分组，用户
  //   rangeValue: null,
  //   defaultUser: null //派工为空转交人员
  // },
  dispatch: {
    //派工人
    value: {
      rangeType: "user",
      rangeValue: [{
        name: "黄建伟",
        key: "999920240229104131965sjmATv"
       }, 
       {
        name: "刘飞宇",
        key: "999920240229104150117pxYdDz"
       }]
     },
     //派工人设置
    dispatchSet: [
       {// 描述
        describe: '0',
        // 派工范围
        defaultUser: {
        rangeType: "user",
        rangeValue: [{
          name: "黄建伟",
          key: "999920240229104131965sjmATv"
         }, 
         {
          name: "刘飞宇",
          key: "999920240229104150117pxYdDz"
         }]
       }
     }
   ]
   },
  timeout: [
    //节点限时处理
    {
      timeType: null, //类型
      TimeValue: null, //时间
      timeUnit: null, //时间单位
      msgID: null, //模版消息ID
      sendUser: {
        type: null, //用户类型
        value: null //用户值
      }
    }
  ],
  //数据传输规则
  dataTransfer: [
    {
      sourceNodeKey: null, //源节点
      sourceNodeColumnId: "columnId", //源字段
      targetNodeColumnId: "ColumnId" //目标字段
    }
  ]
};
// 经办节点默认config
export const handlingNodeConfig = {
  form: {
    formId: null, //表单ID
    formName: null, //表单名称
    //表单字段权限
    column: [
      {
        columnId: 1, //字段ID
        columnName: "字段1", //字段名称
        viewType: "001, 010 ,011" //001 010 011 100 101 110 111 字段显示类型,可见，可编辑，简报"
      }
    ]
  },

  button: [
    {
      buttonId: "but_submit", //按钮ID
      buttonName: "提交领料", //按钮名称
      buttonType: "butGet1", //按钮类型
      param: null
    },
    {
      buttonId: "but_submit", //按钮ID
      buttonName: "提交领料", //按钮名称
      buttonType: "butGet2", //按钮类型
      param: null
    }
  ],
  //操作按钮
  operationButton: [
    {
      buttonId: "submit", //按钮ID
      buttonName: "提交", //按钮名称
      buttonType: "butGet1", //按钮类型
      enabled: true, //按钮是否可用
      param: "submit",
      subFlowFinish: true //子流程结束才允许提交
    },
    {
      buttonId: "but_submit", //按钮ID
      buttonName: "暂存", //按钮名称
      buttonType: "butGet2", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "back",
        action: null, //退回上一节点0，退回指定节点1
        value: null //节点ID
      }
    },
    {
      enabled: true, //按钮是否可用
      buttonId: "but_back", //按钮ID
      buttonName: "退回", //按钮名称
      buttonType: "but_back", //按钮类型
      param: {
        value: null //转交范围
      }
    },
    {
      enabled: true, //按钮是否可用
      buttonId: "but_back", //按钮ID
      buttonName: "转交", //按钮名称
      buttonType: "but_back", //按钮类型
      param: {
        value: null //转交范围
      }
    },
    {
      enabled: true, //按钮是否可用
      buttonId: "but_back", //按钮ID
      buttonName: "加签", //按钮名称
      buttonType: "but_back", //按钮类型
      param: {
        value: null //转交范围
      }
    }
  ],
  //打印按钮
  printButton: [
    {
      buttonId: "submit", //按钮ID
      buttonName: "打印通知单", //按钮名称
      buttonType: "butGet1", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        value: null //打印参数
      }
    },
    {
      buttonId: "but_submit", //按钮ID
      buttonName: "暂存", //按钮名称
      buttonType: "butGet2", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        value: null //打印参数
      }
    }
  ],
  copySend: {
    before: {
      enabled: true, //是否启用"
      copySendType: 0, //抄送人类型
      copySendId: 1 //抄送人ID
    },
    after: {
      enabled: true, //是否启用"
      copySendType: 0, //抄送人类型
      copySendId: 1 //抄送人ID
    }
  },
  label: {
    type: null, //类型0默认,1自定义
    value: null
  },
  dispatch: {
   type: 'custom',// custom，nodeDispatch
    // 自定义
   value: {
     rangeType: "user",//派工人
     rangeValue: [
        {
       name: "黄建伟",
       key: "999920240229104131965sjmATv"
      }, 
      {
       name: "刘飞宇",
       key: "999920240229104150117pxYdDz"
      }
    ]
    },
    // 节点派工
     nodeKey: null,//派工节点key
     nodeName:null,// 派工节点名称
    //  fieldId: null, 
     fieldName: null, // 描述【字段】
  },
  timeout: {
    //见派工节点设置
  },
  subProcess: {
    //子流程
    process: [
      {
        multipleTimes: true,
        enable: true, //是否启用
        buttonId: "but_process", //按钮ID
        buttonName: "按钮名称", //按钮名称
        buttonType: "but_process", //按钮类型
        param: {
          value: null //流程ID
        }
      }
    ]
  }
};
// 审批节点默认config
export const approvalNodeConfig = {
  form: {
    formId: null, //表单ID
    formName: null, //表单名称
    //表单字段权限
    column: [
      {
        columnId: "1", //字段ID
        columnName: "字段1", //字段名称
        viewType: "001" //001 010 011 100 101 110 111 字段显示类型,可见，可编辑，简报"
      }
    ]
  },

  approval: {
    //审批方式
    type: 1, //审批方式 0:会签 1:或签
    value: {
      //派工配置
      rangeType: 111, //公司，部门，角色，分组，用户
      rangeValue: null
    },
    emptyApprovers: {
      //审批人为空规则
      autoAction: 0, //自动转交0、自动同意1
      defaultUser: null //自动转交人员
    }
  },

  //操作按钮
  operationButton: [
    {
      buttonId: "approval", //提交按钮
      buttonName: "提交", //按钮名称
      buttonType: "approval", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        requiredMsg: true, //审核消息必须填
        requiredSign: true, //签名必填
        required: true, //是否必填
        batchApproval: true, //是否批量审批
        reject: {
          //驳回操作
          type: "0", //驳回类型0、退回上一节点1、退回指定节点2
          value: null //退回节点ID
        }
      }
    },
    {
      buttonId: "transfer", //按钮ID,转交
      buttonName: "转交", //按钮名称
      buttonType: "transfer", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "transfer",
        action: null, //退回上一节点0，退回指定节点1
        value: {
          //人员配置
          rangeType: 111, //公司，部门，角色，分组，用户
          rangeValue: null
        }
      }
    },
    {
      buttonId: "addSignature", //按钮ID
      buttonName: "加签", //按钮名称
      buttonType: "addSignature", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        type: "addSignature", //转交范围
        value: {
          //人员配置
          rangeType: 111, //公司，部门，角色，分组，用户
          rangeValue: null
        }
      }
    }
  ],
  //打印按钮
  printButton: [
    {
      buttonId: "printNotiForm", //按钮ID
      buttonName: "打印通知单", //按钮名称
      buttonType: "printNotiForm", //按钮类型
      enabled: true, //按钮是否可用
      param: {
        value: null //打印参数
      }
    }
  ],
  copySend: {
    before: {
      enabled: true, //是否启用"
      copySendType: 0, //抄送人类型
      copySendId: 1 //抄送人ID
    },
    after: {
      enabled: true, //是否启用"
      copySendType: 0, //抄送人类型
      copySendId: 1 //抄送人ID
    }
  },
  label: {
    type: null, //类型0默认,1自定义
    value: null
  },

  timeout: {},
  data: {}
};
// 子流程节点默认config
export const subProcessNodesConfig = {
  initiator: {
    //发起人设置
    rangeType: 111, //公司，部门，角色，分组，用户
    rangeValue: null,
    defaultUser: null //派工为空转交人员
  },
  //数据传输规则
  dataTransfer: [
    {
      sourceNodeKey: null, //源节点
      sourceNodeColumnId: "columnId", //源字段
      targetNodeColumnId: "ColumnId" //目标字段
    }
  ],
  nodeRule: null, //0子流程发起后，自动下一节点，1子流程结束后，自动下一节点
  startSubFlowRule: null //0自动，1，手动发起流程
};
// 自动节点默认config
export const autoNodesConfig = {
  api: {
    key: null, //api关键字
    value: null
  }
};
// 并行分支节点默认config
export const parallelBranchNodesConfig = {
  condition: {
    type: 1, //0与，1或
    describe: null,//条件描述
    nodeRule: [
      {
        type: 1,
        nodeRule: [
          {
            columnId: null,
            opt: null, //操作符 > = < != 包含....
            value: null
          }
        ]
      },
      { type: 1, nodeRule: [] },
      { type: 1, nodeRule: [] }
    ]
  }
};
// 条件分支节点默认config
export const ifBranchNodesConfig = {
  priority: 1, //第几个条件
  describe: null,//条件描述
  condition: {
    type: 1, //0与，1或
    nodeRule: [
      {
        type: 1,
        nodeRule: [
          {
            columnId: null,
            opt: null, //操作符 > = < != 包含....
            value: null
          }
        ]
      },
      { type: 1, nodeRule: [] },
      { type: 1, nodeRule: [] }
    ]
  }
};
